Computer application programs are becoming increasingly large and complex as application developers adopt standard frameworks for constructing applications and developing software. Typically, code developed by a software developer forms only a small portion of the overall application functionality. An application framework is a software component which can be added to an existing operating system to provide a large body of pre-coded solutions to common program requirements, and to manage the execution of programs written specifically for the framework. Correspondingly, the extent to which code uses the services provided by the application framework has become critical to the overall performance in the operation of the system. Frequently, however, the framework is used inefficiently or incorrectly.
The application framework also provides a reconfigurable design for the software systems (or subsystems). The application framework may be expressed as a set of abstract classes and the way their instances collaborate for a specific type of software. Application frameworks are object-oriented designs and may be implemented in an object-oriented language. For example, the application framework may be directed toward building specific applications, compilers for different programming languages and target machines, financial modeling applications or decision support systems. Application frameworks define the places in the architecture where adaptations for specific functionality should be made. In an object-oriented environment, an application framework includes abstract and concrete classes. Instantiation of such a framework includes composing and sub-classing the existing classes. A good application framework enables developers to spend more time concentrating on the business-specific problems at hand rather than on the code running behind it.
The pre-coded solutions provided by the application framework form a class library of the framework to support the development of user interfaces, data access, cryptography, web application development, numeric algorithms and network communications. The functions of the class library are combined with the custom code created by the software developers to produce custom applications programs developed for the framework.
These applications execute in a software environment that manages the runtime requirements of the program. A runtime system, which also forms a portion of the framework, provides the appearance of an application virtual machine so that software developers need not consider the capabilities of the specific central processing unit (CPU) that ultimately will execute the program code. The class library and the run time requirements together compose the framework. The framework is a tool for simplifying the development of computer applications and to reduce the vulnerability of applications and computers to security threats.
Enterprise software includes commercial software such as sophisticated financial systems, popular websites and large scale management and administration systems. Modern enterprise software systems are generally based on standardized multi user application server software for which there are currently two main frameworks: the Java-based J2EE (Java 2 platform, Enterprise Edition) framework and the .NET framework by Microsoft®. Both aim to reduce cost and development time for large scale software development.
The application framework may provide the necessary functionality to achieve these goals through various libraries. A central design principle of an application framework is to handle caching of N-dimensional data. In certain implementations, for example, two-dimensional (2D) data is received from a back-end service and loses its rectangular form within the context of the application framework. The rectangular form of the data then has to be restored in the top-level library before being delivered to a client application.
The problem that recurs in many applications is the need to view the data that is arriving in a low level (sometimes raw binary) structure from a high level view, for example, to view the data as though it was a table or the contents of a table. This rectangular form of data consists of rows and columns and is a very common way for both humans and machines to view large datasets.